package com.logistics.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * 发车记录实体类
 */
@Data
@TableName("dispatch_record")
public class DispatchRecord {
    
    @TableId(type = IdType.AUTO)
    private Long id;
    
    private Long tenantId;
    
    private Long siteId;  // 创建记录的站点ID（冗余字段，等同于departureSiteId）
    
    // 路线信息
    private Long departureSiteId;  // 始发站ID
    
    private String departureSiteName;  // 始发站名称
    
    private Long arrivalSiteId;  // 目的地站点ID
    
    private String arrivalSiteName;  // 目的地站点名称
    
    // 车辆信息
    private Long vehicleId;
    
    private String vehiclePlate;
    
    private String vehicleType;
    
    // 司机信息
    private Long driverId;
    
    private String driverName;
    
    private String driverPhone;
    
    // 发车信息
    private String destination;  // 目的地（已废弃，使用arrivalSiteName）
    
    private Integer orderCount;  // 装载订单数量
    
    private LocalDateTime scheduledDepartureTime;  // 计划发车时间
    
    private LocalDateTime actualDepartureTime;  // 实际发车时间
    
    private LocalDateTime estimatedArrivalTime;  // 预计到达时间
    
    private LocalDateTime actualArrivalTime;  // 实际到达时间
    
    // 状态
    private String dispatchStatus;  // 发车状态：READY-待发车，DISPATCHED-已发车，ARRIVED-已到达，CANCELLED-已取消
    
    // 路线信息
    private String routeInfo;  // 路线信息（JSON格式）
    
    private String remark;  // 备注
    
    // 取消信息
    private String cancelReason;
    
    private LocalDateTime cancelTime;
    
    private Long cancelBy;
    
    // 确认信息
    private Long dispatchConfirmBy;  // 发车确认人
    
    private Long arrivalConfirmBy;  // 到达确认人
    
    private Long createBy;
    
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    
    private Long updateBy;
    
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
